____ _ _ _ _
| _ \ ___ | |_ (_) _ __ ___ __| | (_) __ _
| |_) | / _ \ | __| | | | '_ \ / _ \ / _| | | | / _ |
| _ < | __/ | |_ | | | |_) | | __/ | (_| | | | | (_| |
|_| \_\ \___| \__| |_| | .__/ \___| \__,_| |_| \__,_|
|_|
- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b- `b
Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―Β―
Java-Syntax
part 4/15 Β· 52.8 KB total
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ
Mit assert werden Assertions realisiert.
| | Die Klasse selbst | Paket-Klassen/ innere Klassen | Unterklassen | Sonstige Klassen |
|---|---|---|---|---|
| private | Ja | Nein [ A 1 ] | Nein | Nein |
| (ohne) [ A 2 ] | Ja | Ja | Nein | Nein |
| protected | Ja | Ja | Ja | Nein |
| public | Ja | Ja | Ja | Ja |
cite-note-31. Um inneren Klassen den Zugriff auf private Methoden und Eigenschaften dennoch zu ermΓΆglichen, werden vom Compiler statische, paket-private Methoden erstellt, die den Aufruf, das Setzen oder das Auslesen emulieren. Diese Methoden tragen den Namen access$xxx, wobei xxx fΓΌr eine fortlaufende Nummer steht.
cite-note-42. HΓ€ufig auch als βpackage privateβ bezeichnet, obwohl es diesen Zugriffsmodifikator nicht gibt.
Private Methoden sind von der Polymorphie ausgenommen, d. h. die Definition einer Methode derselben Signatur in einer Subklasse gilt nicht als Γberschreiben (sondern als Verbergen).
static kennzeichnet Implementierungen, die ohne eine Objektreferenz verwendbar sind. Das SchlΓΌsselwort wird bei der Deklaration von Feldern, Methoden und inneren Klassen verwendet. Felder, Methoden und Klassen, die mittels static gekennzeichnet sind, werden im Kontext der Klasse verwendbar und sind an kein Objekt gekoppelt.
abstract kann vor Klassen und Methoden stehen. Abstrakte Methoden verfΓΌgen ΓΌber keine Implementierung und mΓΌssen in abgeleiteten Klassen ΓΌberschrieben werden. Klassen, die abstrakte Methoden enthalten, mΓΌssen selbst als abstrakt deklariert werden. Abstrakte Klassen kΓΆnnen nicht instanziiert werden, auch wenn sie vollstΓ€ndig implementiert sind, wie z. B. im Fall der EventListener-Adapterklassen des Swing-Frameworks.
final kann vor Variablen, Feldern, Methoden und Klassen stehen und erzwingt UnverΓ€nderlichkeit. Bei Variablen und Membervariablen ihre Konstanz, bei Methoden die UnmΓΆglichkeit, sie in abgeleiteten Klassen zu ΓΌberschreiben und schlieΓlich bei Klassen, dass von ihnen keine weiteren Ableitungen erfolgen kΓΆnnen. Einer finalen Variable wird einmalig ein Wert zugewiesen, der nachtrΓ€glich nicht mehr verΓ€ndert werden kann. Eine finale Variable muss nicht in der Deklaration initialisiert werden, sondern kann auch erst in folgenden, alternativen Anweisungen einmalig belegt werden:
public int calcFinal(int a) {
final int b; // hier findet noch keine Zuweisung statt
switch (a) {
case 1:
b = 7;
break;
case 2:
b = 3;
break;
default:
b = 1;
break;
}
return b;
}
Zugriffe auf finale Variablen, deren Wert dem Compiler bekannt ist, dΓΌrfen vom Compiler durch den Wert der Variable ersetzt werden. Aufrufe finaler Methoden dΓΌrfen vom Compiler durch eingebundenen Code (Inlining) ersetzt werden. Private Methoden sind automatisch final.
ββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββββ